package com.zcw.taskdemo;

/**
 * Created by 朱城委 on 2019/pic3/pic5.<br><br>
 */
public class ExceptionDemo {

    boolean testEx() throws Exception {
        boolean ret = true;
        try {
            ret = testEx1();
        }
        catch (Exception e) {
            System.out.println("testEx, catch exception");
            ret = false;
            throw e;
        }
        finally {
            System.out.println("testEx finally; return value = " + ret);
            return ret;
        }
    }

    boolean testEx1() throws Exception {
        boolean ret = true;
        try {
            ret = testEx2();
            if(!ret) {
                return false;
            }

            System.out.println("testEx1, at the end of try");
            return ret;
        }
        catch (Exception e) {
            System.out.println("testEx1, catch exception");
            ret = false;
            throw e;
        }
        finally {
            System.out.println("testEx1 finally; return value = " + ret);
            return ret;
        }
    }

    boolean testEx2() {
        boolean ret = true;
        try {
            int b = 12;
            int c;
            for(int i = 2; i >= -2; i--) {
                c = b / i;
                System.out.println("i = " + i);
            }
            return true;
        }
        catch (Exception e) {
            System.out.println("testEx2, catch Exception");
            ret = false;
            throw e;
        }
        finally {
            System.out.println("testEx2, finally; return value = " + ret);
            return ret;
        }
    }

    public static void main(String[] args) {
        ExceptionDemo exceptionDemo = new ExceptionDemo();
        try {
            exceptionDemo.testEx();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
